﻿namespace Ast.Core.Pe.Definitions
{
    public enum Machine : ushort
    {
        Unknown = 0,
        I386 = 0x014c, // Intel 386.
        R3000 = 0x0162, // MIPS little-endian, 0x160 big-endian
        R4000 = 0x0166, // MIPS little-endian
        R10000 = 0x0168, // MIPS little-endian
        WceMipsV2 = 0x0169, // MIPS little-endian WCE v2
        Alpha = 0x0184, // Alpha_AXP
        Sh3 = 0x01a2, // SH3 little-endian
        Sh3Dsp = 0x01a3,
        Sh3E = 0x01a4, // SH3E little-endian
        Sh4 = 0x01a6, // SH4 little-endian
        Sh5 = 0x01a8, // SH5
        Arm = 0x01c0, // ARM Little-Endian
        Thumb = 0x01c2,
        Am33 = 0x01d3,
        PowerPc = 0x01F0, // IBM PowerPC Little-Endian
        PowerPcFp = 0x01f1,
        Ia64 = 0x0200, // Intel 64
        Mips16 = 0x0266, // MIPS
        Alpha64 = 0x0284, // ALPHA64
        MipsFpu = 0x0366, // MIPS
        MipsFpu16 = 0x0466, // MIPS
        Axp64 = Alpha64,
        Tricore = 0x0520, // Infineon
        Cef = 0x0CEF,
        Ebc = 0x0EBC, // EFI Byte Code
        Amd64 = 0x8664, // AMD64 (K8)
        M32R = 0x9041, // M32R little-endian
        Cee = 0xC0EE
    }
}